This invention relates to distributed data processing systems.
Such a system generally includes a number of resources which may be accessed by a number of user processes. Access to the resources may be controlled by a lock management mechanism. When a user process requires to access a resource, it requests a lock for that resource. If the lock cannot be granted immediately, it is queued.
In such a system, dependencies can occur between transactions; that is, one transaction may be held up, waiting for another to release a lock on a particular resource. If the dependencies become cyclic all the transactions in the cycle are held up waiting for each other. This is referred to as a deadlock.
To overcome this problem, deadlock detection mechanisms have been proposed. When a deadlock is detected, one of the transactions in the cycle is selected as a "victim", and is aborted so as to break the deadlock.
The object of the present invention is to provide an improved deadlock detection and resolution mechanism.